﻿
namespace AugustSql
{
    public interface ISqlInformationCollection : ISqlCollectionBase
    {
        SqlInformationBase CreateNewSqlInformation(params object[] _KeyValue);
        SqlInformationBase GetElementOneSqlInformation(FirstOrLast firstOrLast, string[] _Element, params object[] _ElementValue);
        SqlInformationBase GetElementOneSqlInformation(string _Element, object _ElementValue);
        SqlInformationBase[] GetElementSqlInformation(string[] _Element, params object[] _ElementValue);
        SqlInformationBase GetFirstSqlInformation();
        SqlInformationBase GetKeySqlInformation(params object[] _KeyValue);
        SqlInformationBase[] GetLastCountSqlInformation(int lastcount);
        SqlInformationBase GetLastSqlInformation();
        SqlInformationBase GetNextSqlInformation(SqlInformationBase sqlInformationBase, long MaxNextNum);
        void SetElement(params string[] _Element);
    }


    public interface ISqlCollectionBase
    {
        string PrimaryKey {  get; set; }
        string[] Key { get; set; }
        Type ResgistType { get; }
        ISqlClient SqlClient { get; set; }
        string TableName { get; set; }

         void RemoveKeyData(object[] key);


                
        void RemoveElementData(object[] objects);

    }
}